// 预选项
export default [
    {
        label: 'a-inst.txt',
        addLen: 4, // 地址位数
        dataSize: 3, // 内存中数据区域的长度
        codeStart: 3, // 代码区域的开始位置
        codes: `in R1  	#输入a到R1
movi 1 	#设置R0为1
add R2,R1 	#R2存放累加值
sub R1,R0	#R1的值即a减去1,此时会设置Ｇ值
movd		#将当前PC值保存在R3中
movi -3	#存放-3到R0中,跳转到第二行
add R3,R0	#R3减去3，注意此时不能用SUB指令，会影响G值
jg		#如果R1的值还大于1，则跳到第2行去执行
out R2		#如果R1的值此时小于等于1，则准备输出
halt		#停机
`,
    },
    {
        label: 'b-inst.txt',
        addLen: 4, // 地址位数
        dataSize: 2, // 内存中数据区域的长度
        codeStart: 2, // 代码区域的开始位置
        codes: `in R1 		#输入第一个数a
in R2 		#输入第二个数b
mova R0,R1 	#在R0保存a 
sub R1,R2  	#a-b,此时会设置G
mova R1,R0 	#a保存到R1
movd       	#保存当前的PC值到R3
movi 6     	#R0的值设置为6,即跳转到11行
add R3,R0  	#R3的值加6
mova R0,R2 	#b的值保存到R0
jg         	#如果a的值比b大,就跳转
#跳转地址
mova R0,R1 #将a的值保存到R0
out R0     #输出R0
halt`,
    },
    {
        label: 'c-inst.txt',
        addLen: 5, // 地址位数
        dataSize: 3, // 内存中数据区域的长度
        codeStart: 3, // 代码区域的开始位置
        codes: `#两个大于1的正数相乘
in R1		#乘数a
movb R0,R1	#乘数a存放到内存0000 0000
in R1		#被乘数b
movi 1
movb R0,R1	#被乘数b存放在内存0000 0001
        #结果存放在内存 0000 0010
#开始循环
movi 1		#R0中的值为1
movc R1,R0	#从内存中取出值b
movi 1		#设置R0中的值为1
sub R1,R0	#R1即b值减1，此时设置G值
movi 1
movb R0,R1	#b值需要保存回去
movi 0		#R0中设置为0，即内存地址0
movc R2,R0	#取出a值
movi 2		#R0中设置为2，即内存地址0000 0010
movc R1,R0	#取出结果
add R1,R2	#做加法
movb R0,R1	#将结果存回去
movd       	#保存当前的PC值到R3
movi -12     	#R0的值设置为-12
add R3,R0  	#R3的值加-12
jg         	#如果第12行的减法设置G为1,就跳转
#循环结束
movi 2		#R0中设置为2，即内存地址0000 0010
movc R1,R0	#取出结果
out R1		#打印结果
halt`,
    },
]
